home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 19
/
Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso
/
Aminet
/
demo
/
mag
/
trash3_2.lha
/
fuentes
/
STARTUP-FUENTES.lha
/
macros.i
next >
Wrap
Text File
|
1996-10-24
|
8KB
|
216 lines
*****************************************************************************
* Fuente: macros.i *
* Sistema: ROM 1.2/1.3/2.04/3.00 *
* Versión: v1.0 30-7-93 *
* Descripción: Macros assembler a68k y Offsets (LVO) de las funciones *
* utilizadas en los programas EJEMPLO *
* *
* © Martin *
* *
*****************************************************************************
*****************************************************************************
* Estas asignaciones corresponden a los offsets de cada función del
* sistema empleada en los programas...
*****************************************************************************
_AbsExecBase EQU 4 ;posición absoluta de memoria de
;la dirección base de la libreria Exec
_LVOOpenLibrary EQU -552 ;offset de la función 'abrir libreria'
_LVOCloseLibrary EQU -414 ;offset de la función 'cerrar libreria'
_LVOOutput EQU -60 ;offset de la función 'identificador de canal de salida'
_LVOWrite EQU -48 ;offset de la función 'escribir en canal de salida'
_LVOInput EQU -54 ;offset de la función 'identificador de canal de entrada'
_LVORead EQU -42 ;offset de la función 'leer del canal de entrada'
_LVODelay EQU -198 ;offset de la función 'retardo de tiempo'
_LVOFindTask EQU -294 ;offset de la función 'Encontrar Tarea Activada'
_LVOOpenDevice EQU -444 ;offset de la función 'Abrir Device'
_LVODoIO EQU -456 ;offset de la función 'Mandar Mensaje'
_LVOCloseDevice EQU -450 ;offset de la función 'Cerrar Device'
_LVOPermit EQU -138 ;offset de la función 'Permitir multitarea'
_LVOForbid EQU -132 ;offset de la función 'Prohibir multitarea'
_LVOAllocMem EQU -198 ;offset de la función 'Reservar Memoria'
_LVOFreeMem EQU -210 ;offset de la función 'Liberar Memoria'
_LVOAddIntServer EQU -168 ;offset de la función 'Añadir Rutina Servicio Interrupción'
_LVORemIntServer EQU -174 ;offset de la función 'Borrar Rutina Servicio Interrupción'
_LVOAllocSignal EQU -330 ;offset de la función 'Reservar Bit de Signal'
_LVOFreeSignal EQU -336 ;offset de la función 'Liberar Bit de Signal'
_LVOSetSignal EQU -306 ;offset de la función 'Activar/Desactivar Bit de Signal'
_LVOSignal EQU -324 ;offset de la función 'Enviar Signal a una Task determinada'
_LVOWait EQU -318 ;offset de la función 'Esperar a recibir un Signal Determinado'
_LVOOpenResource EQU -498 ;offset de la función 'Abrir Recurso'
; Intuition.library ********************************************************************************
_LVODisplayBeep EQU -96 ; offset de la función 'Visualizar Parpadeo de Alerta'
_LVOOpenScreen EQU -198 ; offset de la función 'Abrir Pantalla'
_LVOCloseScreen EQU -66 ; offset de la función 'Cerrar Pantalla'
_LVOOpenWindow EQU -204 ; offset de la función 'Abrir Ventana'
_LVOCloseWindow EQU -72 ; offset de la función 'Cerrar Ventana'
; Graphics.library ************************************************************************************
_LVOAllocRaster EQU -492 ; offset de la función 'Reservar memoria para un bitplano'
_LVOFreeRaster EQU -498 ; offset de la función 'Liberar memoria ocupada por un bitplano'
_LVOInitBitMap EQU -390 ; offset de la función 'Inicializar estructura de tipo Bitmap'
_LVOInitRastPort EQU -198 ; offset de la función 'Inicializar estructura de tipo RastPort'
_LVOBltClear EQU -300 ; offset de la función 'Limpiar zona de memoria CHIP'
_LVOSetBPen EQU -348 ; offset de la función 'Seleccionar Color Primario B'
_LVOSetAPen EQU -342 ; offset de la función 'Seleccionar Color Primario A'
_LVOSetRGB4 EQU -288 ; offset de la función 'Modificar Color del ViewPort'
_LVOOwnBlitter EQU -456 ; offset de la función 'Apropiarse del blitter'
_LVODisOwnBlitter EQU -462 ; offset de la función 'Liberar el Blitter'
NULL EQU 0 ;código caracter vacío
LF EQU 10 ;código ASCII del caracter 'salto de línea'
*******************************************************************************
* MACRO código ANSI para texto en negrita (bold)
*******************************************************************************
NEGRITAon MACRO
dc.b 27,91,49,109
ENDM
NEGRITAoff MACRO
dc.b 27,91,50,50,109
ENDM
ITALICAon MACRO
dc.b 27,91,51,109
ENDM
ITALICAoff MACRO
dc.b 27,91,50,51,109
ENDM
SUBRAYADOon MACRO
dc.b 27,91,52,109
ENDM
SUBRAYADOoff MACRO
dc.b 27,91,50,52,109
ENDM
*******************************************************************************
* MACRO para preparar la llamada a una función de libreria
*******************************************************************************
UNE_LIB MACRO
IFGT NARG-2
FAIL ;fallo, demasiados argumentos
ENDC
move.l a6,-(sp) ;salvamos registro utilizado
move.l \2,a6 ;movemos parametro no.2 al registro a6
jsr \1(a6) ;salto a la función llamada
move.l (sp)+,a6 ;restauramos registro utilizado
ENDM
*******************************************************************************
* Macro para llamar a una función de libreria
*******************************************************************************
CALLSYS MACRO
UNE_LIB _LVO\1,\2 ;preparamos la llamada con otra macro
ENDM
*******************************************************************************
* Macro para escribir un texto en el 'Shell/CLI'
*******************************************************************************
WRITE MACRO
movem.l d1-d3,-(sp) ;salvar contenido de los regs. utilizados
move.l \2,d1 ;identificador del canal de salida del texto
move.l #\1,d2 ;inicio del texto
move.l #\1_long,d3 ;tamaño del mensaje
CALLSYS Write,_DOSBase ;llamada a la función
movem.l (sp)+,d1-d3 ;restaurar registros utilizados
ENDM
*******************************************************************************
* Macro para leer un texto desde el 'Shell/CLI'
*******************************************************************************
READ MACRO
movem.l d1-d3,-(sp) ;salvar contenido de los regs. utilizados
move.l \2,d1 ;identificador del canal de entrada del texto
move.l #\1,d2 ;inicio del texto
move.l #\1_long,d3 ;tamaño del mensaje
CALLSYS Read,_DOSBase ;llamada a la función
movem.l (sp)+,d1-d3 ;restaurar registros utilizados
ENDM
*******************************************************************************